home *** CD-ROM | disk | FTP | other *** search
/ Diva X: Rebecca / Diva X - Rebecca.iso / install.rul < prev    next >
Text File  |  1993-11-29  |  10KB  |  320 lines

  1. //
  2. //      DIVA  X CD-ROM 1995 Installation Script
  3. //      (c) 1995, PIXIS Interactive. All rights reserved.
  4. //
  5. //      Installs Video for Windows 1.1E  and DIVA X.
  6. //
  7. //    creates "PIXIS" program group, installs icons.
  8. //    Define some predefined constants. Can be used for number only
  9. //
  10.  
  11. #define MAX_SIZE         145
  12. #define BASE_FILE_SIZE   1000000
  13. #define ALT_FILE_SIZE    1000000
  14.  
  15. declare // Must use declare keyword to start variable declaration
  16.  
  17.      string  szText[ MAX_SIZE ];
  18.      string  szTmpTAR[ MAX_SIZE ], szTmpSRC[ MAX_SIZE ]; // temp path vars
  19.      string  szDestPath[ MAX_SIZE ], szResultPath[ MAX_SIZE ];
  20.      string  szDisk[50];
  21.      string  szErrMsg [ 255 ], szErrFile [ 100 ], szMsg [ 100 ];
  22.      string  szREADME [ 100 ], szPath[ 200 ];
  23.      string  szCommand[ 200 ], szBIN[ MAX_SIZE ];
  24.      string  szHELPPath[ MAX_SIZE ], szBINPath[ 50 ];
  25.      string  szPgrp[ 40 ];
  26.      string  szIcon[ 40 ];
  27.          string  SourcePath[40];
  28.          string  szCurrent[40];
  29.          string  szPrevious[40];
  30.          string  szCopyFile[50];
  31.          string szTempTARGET[145], szErrorTempTARGET[145];
  32.          string szTempSRC[145], szErrorTempSRC[145];
  33.          string szMessageBox[145];
  34.          string szFindFile[50];
  35.          string szMessage[50];
  36.          string szFullPathError[150];
  37.          string szSetFileInfoPath[150];
  38.  
  39.  
  40.          number nUninstall, nInstall;
  41.          number nSpace, nCount;
  42.          number nFile, nQTdel;
  43.          number copyflag, LoopFlag;
  44.  
  45.  
  46.  
  47. program /* Must use program keyword to start the statements */
  48.  
  49.  
  50. Start:
  51.  
  52.        Disable( BACKGROUND );
  53.  
  54.        // Set the color of the background to be Gradiant
  55.        SetColor( BACKGROUND, QUAD( BK_RESET, 0, 0, 0 ));
  56.        SetColor( BACKGROUND, QUAD( BK_VERT_TOP, 0, 0, 0 ));
  57.        SetColor( BACKGROUND, QUAD( BK_VERT_BOTTOM, 255, 255, 255 ));
  58.        SetColor( BACKGROUND, QUAD( BK_COMPLETE, 255, 255, 255 ));
  59.        SetColor( STATUSBAR, RED );
  60.  
  61.        SetFont( FONT_TITLE, STYLE_ITALIC, "Arial" );
  62.  
  63.        SetTitle( "DIVA X", 35, RGB(255,255,255) );
  64.  
  65.  
  66.  
  67.  
  68.        // Enable various objects.
  69.        Enable( INDVFILESTATUS ); // Shows all filenames when copied.
  70.        Disable( HELP );          //
  71.        Enable( EXIT );           // Exit Button
  72.        Enable( PAUSE );          // Pause Button
  73.        Enable( STATUS );         // Status , % Complete Bar Window
  74. //       Enable( TEXT );         // Info Windows
  75.        Enable( FEEDBACK_FULL);   // Feedback window enabled
  76.        Enable( BACKGROUND );
  77.  
  78.        // Determine target location for files
  79.     GetDisk( TARGETDIR, szDisk );
  80.     StrCopy( szDestPath, szDisk );
  81.     StrConcat( szDestPath, "\\DIVAX" ); // Note: the double slashes
  82.  
  83. DrawBitmap:
  84.  
  85.     // Determine the source path of the bitmap file
  86.  
  87.     StrCopy( szResultPath, SRCDIR );
  88.     AppendToPath( szResultPath, "PIXIS.BMP" );
  89.  
  90.     // Place our product logo in the top right corner
  91.  
  92.     PlaceBitmap( szResultPath, 101, 20, 20, LOWER_LEFT);
  93.  
  94.  
  95.  
  96. TargetLoc:
  97.  
  98.        // Increment % Complete Bar to 4 %, & display message
  99.        SetStatusWindow( 1, "Installing DIVA X" );
  100.  
  101.        // Want to ask user for a path to install VCR
  102.        StrCopy( szText, "Enter the desired path for Diva Program Files(example: C:\\DIVAX)" );
  103.        AskPath( szText, szDestPath, szResultPath );
  104.        if LAST_RESULT = FALSE then call ConfirmCancel; endif;
  105.        StrCompare( szResultPath, SRCDIR );
  106.        if LAST_RESULT = 0 then
  107.        MessageBox( "The target location must be different than the source.\nPlease specify a different location.",WARNING );
  108.        goto TargetLoc;
  109.        endif;
  110.  
  111.        StrCopy( szBINPath, szResultPath );
  112.        GetDisk( szResultPath, szDisk );
  113.  
  114.        // If correct disk entered, then BeginInstall;
  115.        ExistsDisk( szDisk );
  116.        if LAST_RESULT != 0 then
  117.       // Invalid disk entered, reprompt
  118.       StrCopy( szText, szResultPath );
  119.       StrConcat( szText, "- is an invalid disk, press Ok to return to the path selection");
  120.       MessageBox( szText, WARNING );
  121.       goto TargetLoc;
  122.        endif;
  123.  
  124. BeginInstall:
  125.        SetStatusWindow( 10, "Check available disk space." );    // 10%
  126.        GetDisk( szResultPath, szDisk );
  127.  
  128.        // Check to see if enough space is free on the destination.
  129.        // GetDiskSpace returns free space in LAST_RESULT.
  130.        GetDiskSpace( szDisk );
  131.        if LAST_RESULT < nSpace then
  132.       StrCopy( szText, "Not enough space on ");
  133.       StrConcat( szText, szDisk );
  134.       StrConcat( szText, "-Please press OK to try another target disk");
  135.       MessageBox( szText, WARNING );
  136.       goto TargetLoc;
  137.        endif;
  138.  
  139. EnoughSpace:
  140.        SetStatusWindow( 15, "Check existing installation" );    // 15%
  141.  
  142.        // Check to see if Directory Exists
  143.        // ExistsDir returns value in LAST_RESULT
  144.        ExistsDir( szResultPath );
  145.        if LAST_RESULT = 0 goto DirExists;
  146.        CreateDir( szResultPath );
  147.        if LAST_RESULT = 0 goto DirExists;
  148.        StrCopy( szText, "Unable to create specified path -");
  149.        StrConcat( szText, szResultPath );
  150.        StrConcat( szText, "Please enter a correct path like C:\\DIRECTRY");
  151.        MessageBox( szText, WARNING );
  152.        goto TargetLoc;
  153.  
  154. DirExists:
  155.  
  156. //*************************************************************
  157. // Copy Files to HD:
  158. //
  159. // Description:
  160. //   Copy README.WRI to directory in szResultPathand 
  161. //   and Director support files to windows/system directory
  162. //*************************************************************
  163.  
  164.            SetStatusWindow( 18, "Installing DIVA X - Dir Exists" ); //18%
  165.  
  166.       StrCopy(szTmpTAR, TARGETDIR);    // SAVE TARGET
  167.     StrCopy(szTmpSRC, SRCDIR);       // SAVE SOURCE
  168.  
  169.         StrCopy(TARGETDIR, szResultPath);
  170.         StrCopy(szCopyFile, "README.WRI");
  171.         call Copy_This;  
  172.         
  173.       StrConcat(SRCDIR, "BIN");     // SET SOURCE DIR TO ROOT DIRECTORY ON CD
  174.       //StrCopy(TARGETDIR, WINSYSDIR);   // SET TARTGET TO WINDOWS SYSTEM DIR
  175.  
  176.     SetStatusWindow(30, "Installing DIVA X main files" );
  177.     StrCopy(szCopyFile, "Diva1.EXE");
  178.     call Copy_This;
  179.  
  180.     SetStatusWindow(35, "Installing DIVA X main files" );
  181.     StrCopy(szCopyFile, "Diva.ICO");
  182.     call Copy_This;
  183.  
  184.     SetStatusWindow( 39, "Installing DIVA X support files" );
  185.     StrCopy(szCopyFile, "DIALOGS.DLL");
  186.     call Copy_This;
  187.  
  188.     SetStatusWindow( 45, "Installing DIVA X support files" );
  189.      StrCopy(szCopyFile, "MESSAGE.DLL");
  190.     call Copy_This;
  191.  
  192.     SetStatusWindow( 85, "Installing DIVA X support files" );
  193.      StrCopy(szCopyFile, "FILEIO.DLL");
  194.     call Copy_This;
  195.  
  196.     SetStatusWindow( 93, "Installing DIVA X support files" );
  197.     StrCopy(szCopyFile, "LINGO.INI");
  198.     call Copy_This;
  199.  
  200.     StrCopy(TARGETDIR, szTmpTAR);         //  RESTORE TARTGET DIR
  201.         StrCopy(SRCDIR, szTmpSRC);          //  RESTORE SOURCE DIR
  202.  
  203.  
  204. //****************************************************************
  205. // Complete:
  206. //
  207. // Description:
  208. //    Create Program Icons and Groups for various .exe files.
  209. //    Also launches Video for Windows 1.1E installer.
  210. //**************************************************************
  211.  
  212.  
  213. Complete:
  214.  
  215.        // Now create a program group & icons
  216.  
  217.        SetStatusWindow(  95, "Creating Program Group & Icons"); // 95%
  218.        Delay( 1 );
  219.        AppCommand( PROGMAN, CMD_RESTORE );
  220.        StrCopy( szPgrp, "DIVA X" );
  221.        DeleteGroup( szPgrp );
  222.  
  223.        // ADD README TO PROGRAM GROUP
  224.  
  225.        StrCopy( szPath, szResultPath);
  226.        AppendToPath( szPath, "README.WRI" );
  227.        StrCopy( szCommand, "WRITE ");
  228.        StrConcat( szCommand, szPath );
  229.  
  230.        AddProgItem( szPgrp, "Read Me!", szCommand, "");
  231.  
  232.        // ADD DIVA  X TO PROGRAM GROUP
  233.  
  234.        StrCopy( szPath, szResultPath);
  235.        AppendToPath( szPath, "DIVA1.EXE" );
  236.        StrCopy( szCommand, szPath );
  237.        StrCopy( szIcon, szResultPath);
  238.        AppendToPath( szIcon, "DIVA.ICO" );
  239.  
  240.        AddProgItem( szPgrp, "DIVA X", szCommand, szIcon );
  241.  
  242.  
  243.        AppCommand( PROGMAN, CMD_PUSHDOWN );
  244.  
  245.  
  246.        
  247.  
  248.        // ASK Video for Windows 1.1E INSTALL
  249.  
  250.  AskVFWInstall:
  251.  
  252.        // FIRST WARN USER THAT DIRECTOR 4.0 PROJECTORS WILL GET HARMLESS ERROR MESSAGE
  253.        // AS A RESULT OF .DLLS FROM OLDER VERSIONS OF DIRECTOR IN THEIR SYSTEM FOLDER
  254.  
  255.        MessageBox("When launching 'DIVA X' you may get a Script Error Message 'Xlib file not found'. Click 'Continue' to proceed.", INFORMATION); 
  256.  
  257.        AskYesNo("DIVA X requires Video for Windows 1.1E or better to run properly. Click 'Yes' to install Video for Windows 1.1E?", TRUE);
  258.        if LAST_RESULT = FALSE then
  259.            call ConfirmCancel;
  260.            goto AskVFWInstall;
  261.        endif;
  262.        
  263.  
  264. ///////////////  Launch Video for Windows 1.1E Installer  ////////////////////////////
  265.  
  266.        StrCopy(SourcePath, SRCDIR);
  267.        StrConcat(SourcePath, "Vfw11e\\SETUP.exe");
  268.       
  269.        LaunchApp(SourcePath, "");
  270.      MessageBox("DIVA X has been installed successfully.", INFORMATION);
  271.     exit;
  272.  
  273. //**************************************************************
  274. // Copy_This
  275. //
  276. // Description:
  277. //   called By CopyDirectorFiles. The file to be copied is
  278. //   'passed' in the szCopyFile string variable.  If the copy is
  279. //   unsuccessfull, a message appears directing the user to make a
  280. //   note of the problem file and look for further instructions in
  281. //   the README file
  282. //**************************************************************
  283.  
  284. Copy_This:
  285.         CopyFile(szCopyFile, szCopyFile);
  286.         if LAST_RESULT < 0 then
  287.         StrCopy(szErrMsg, "Cannot copy file ");
  288.         StrConcat(szErrMsg, szCopyFile);
  289.         StrConcat(szErrMsg, ". Please make a note of this file name and refer to the 'Install Errors' section of the README file");
  290.         MessageBox(szErrMsg, WARNING);
  291.         endif;
  292.         return;
  293.  
  294.  
  295.  
  296. //*****************************************************************
  297. //    ConfirmCancel
  298. //
  299. //    Description:
  300. //     This procedure will confirm with the users if they want
  301. //      to terminate the installation of the PIXIS product.
  302. //*******************************************************************
  303.  
  304. ConfirmCancel:
  305.  
  306.       AskYesNo( "Are you sure you want to CANCEL installation ?", FALSE );
  307.  
  308.       if LAST_RESULT = FALSE then return; endif;
  309.  
  310.       exit;
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.